#include "showdata.h"
extern QString record_date;

showData::showData(QWidget *parent) : QMainWindow(parent)
{
    this->setStyleSheet("QMainWindow{background-image: url(:/pic/背景板.png);}");
    this->setFixedSize(640,430);

    ui_Init();
    connect_init();
    Readdata(record_date);
}
void showData::connect_init()
{
//    //定时器
//    connect(timer,&QTimer::timeout,[=](){
//        //BASE_labellist.at(9)->setText(message_show[flag_PaperPlatform]);
//        QString now_time  = QDateTime::currentDateTime().toString("hh:mm");
//       ui->label_time->setText(now_time);
//       if(flag_protect)          ui->label_protect_p->show();
//       else                            ui->label_protect_p->hide();
//       if(flag_warn)             ui->label_warn_p->show();
//       else                            ui->label_warn_p->hide();
//       if(flag_lock)               ui->label_lock_p->show();
//       else                            ui->label_lock_p->hide();
//    });
    //这里关联翻页按键,下一页
    connect(theBtn[1],&QPushButton::clicked,[=](){
        if(file.atEnd())
            return;
        pos_lastpage_start =file.pos();
        while(!file.atEnd())
                {
                    QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
                    qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
                    data_process(qstr);
                    if(flag==1){
                        //第一行显示，但还要注意是左右的第几页  第一页page_LR=0,......
                        label_data[0]->setText(data_toshow[0+4*page_LR]);
                        label_data[1]->setText(data_toshow[1+4*page_LR]);
                        label_data[2]->setText(data_toshow[2+4*page_LR]);
                        label_data[3]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==2){
                        label_data[4]->setText(data_toshow[0+4*page_LR]);
                        label_data[5]->setText(data_toshow[1+4*page_LR]);
                        label_data[6]->setText(data_toshow[2+4*page_LR]);
                        label_data[7]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==3){
                        label_data[8]->setText(data_toshow[0+4*page_LR]);
                        label_data[9]->setText(data_toshow[1+4*page_LR]);
                        label_data[10]->setText(data_toshow[2+4*page_LR]);
                        label_data[11]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==4){
                        label_data[12]->setText(data_toshow[0+4*page_LR]);
                        label_data[13]->setText(data_toshow[1+4*page_LR]);
                        label_data[14]->setText(data_toshow[2+4*page_LR]);
                        label_data[15]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==5){
                        label_data[16]->setText(data_toshow[0+4*page_LR]);
                        label_data[17]->setText(data_toshow[1+4*page_LR]);
                        label_data[18]->setText(data_toshow[2+4*page_LR]);
                        label_data[19]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==6){
                        label_data[20]->setText(data_toshow[0+4*page_LR]);
                        label_data[21]->setText(data_toshow[1+4*page_LR]);
                        label_data[22]->setText(data_toshow[2+4*page_LR]);
                        label_data[23]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    //若本页未展示全部数据,就等待用户按翻页键
                    if(flag==7)
                        break;
                }
        if(flag<7) //本页未用完,剩下的就要变为空
        {
            switch (flag) {
            case 2: //只用了一行
            {
                label_data[4]->setText("");
                label_data[5]->setText("");
                label_data[6]->setText("");
                label_data[7]->setText("");
                label_data[8]->setText("");
                label_data[9]->setText("");
                label_data[10]->setText("");
                label_data[11]->setText("");
                label_data[12]->setText("");
                label_data[13]->setText("");
                label_data[14]->setText("");
                label_data[15]->setText("");
                label_data[16]->clear();label_data[17]->clear();label_data[18]->clear();label_data[19]->clear();
                label_data[20]->clear();label_data[21]->clear();label_data[22]->clear();label_data[23]->clear();
                break;
            }
            case 3://只用了两行
            {
                label_data[8]->setText("");
                label_data[9]->setText("");
                label_data[10]->setText("");
                label_data[11]->setText("");
                label_data[12]->setText("");
                label_data[13]->setText("");
                label_data[14]->setText("");
                label_data[15]->setText("");
                label_data[16]->clear();label_data[17]->clear();label_data[18]->clear();label_data[19]->clear();
                label_data[20]->clear();label_data[21]->clear();label_data[22]->clear();label_data[23]->clear();
                break;
            }
            case 4://只用了三行
            {
                label_data[12]->setText("");
                label_data[13]->setText("");
                label_data[14]->setText("");
                label_data[15]->setText("");
                label_data[16]->clear();label_data[17]->clear();label_data[18]->clear();label_data[19]->clear();
                label_data[20]->clear();label_data[21]->clear();label_data[22]->clear();label_data[23]->clear();
                break;
            }
            case 5://只用了四行
            {
                label_data[16]->clear();label_data[17]->clear();label_data[18]->clear();label_data[19]->clear();
                label_data[20]->clear();label_data[21]->clear();label_data[22]->clear();label_data[23]->clear();
                break;
            }
            case 6://只用了五行
            {
                label_data[20]->clear();label_data[21]->clear();label_data[22]->clear();label_data[23]->clear();
                break;
            }
            default:
                break;
            }
        }
        pos_start = file.pos();
        int count = pos_start - pos_lastpage_start;
        count_pagenum.append(QString("%1").arg(count));//记录本页多少内容
        page_num++;
        flag=1;
    });
    //这里关联翻页按键,上一页
    connect(theBtn[0],&QPushButton::clicked,[=](){
        if(page_num < 2)
            return;
        //重新定位读写位置
        QString s = count_pagenum.at(page_num-1);
        QString s2 = count_pagenum.at(page_num-2);
        int lastpage_pos = file.pos() - s.toInt() - s2.toInt();
        file.seek(lastpage_pos);
        while(!file.atEnd())
                {
                    QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
                    qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
                    data_process(qstr);
                    /*
                     * 将一行数据进行处理，得到纯数据和名字
                     * */
                    if(flag==1){
                        label_data[0]->setText(data_toshow[0+4*page_LR]);
                        label_data[1]->setText(data_toshow[1+4*page_LR]);
                        label_data[2]->setText(data_toshow[2+4*page_LR]);
                        label_data[3]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==2){
                        label_data[4]->setText(data_toshow[0+4*page_LR]);
                        label_data[5]->setText(data_toshow[1+4*page_LR]);
                        label_data[6]->setText(data_toshow[2+4*page_LR]);
                        label_data[7]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==3){
                        label_data[8]->setText(data_toshow[0+4*page_LR]);
                        label_data[9]->setText(data_toshow[1+4*page_LR]);
                        label_data[10]->setText(data_toshow[2+4*page_LR]);
                        label_data[11]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==4){
                        label_data[12]->setText(data_toshow[0+4*page_LR]);
                        label_data[13]->setText(data_toshow[1+4*page_LR]);
                        label_data[14]->setText(data_toshow[2+4*page_LR]);
                        label_data[15]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==5){
                        label_data[16]->setText(data_toshow[0+4*page_LR]);
                        label_data[17]->setText(data_toshow[1+4*page_LR]);
                        label_data[18]->setText(data_toshow[2+4*page_LR]);
                        label_data[19]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==6){
                        label_data[20]->setText(data_toshow[0+4*page_LR]);
                        label_data[21]->setText(data_toshow[1+4*page_LR]);
                        label_data[22]->setText(data_toshow[2+4*page_LR]);
                        label_data[23]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    //若本页未展示全部数据,就等待用户按翻页键
                    if(flag==7)
                        break;
                }
           flag=1;
           page_num--;//页数减一
           count_pagenum.removeLast();
    });
    //左翻页
    connect(theBtn[2],&QPushButton::clicked,[=](){
        if(page_LR>0) page_LR--;
        else return;
        //第一行名字更新
        label_name[0]->setText(data_name[0+4*page_LR]);
        label_name[1]->setText(data_name[1+4*page_LR]);
        label_name[2]->setText(data_name[2+4*page_LR]);
        label_name[3]->setText(data_name[3+4*page_LR]);

        //四行数据更新
        //重新定位到本页开始位置再读
        QString s = count_pagenum.at(page_num-1);
        int lastpage_pos = file.pos() - s.toInt();
        file.seek(lastpage_pos);
        while(!file.atEnd())
                {
                    QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
                    qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
                    data_process(qstr);
                    /*
                     * 将一行数据进行处理，得到纯数据和名字
                     * */
                    if(flag==1){
                        label_data[0]->setText(data_toshow[0+4*page_LR]);
                        label_data[1]->setText(data_toshow[1+4*page_LR]);
                        label_data[2]->setText(data_toshow[2+4*page_LR]);
                        label_data[3]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==2){
                        label_data[4]->setText(data_toshow[0+4*page_LR]);
                        label_data[5]->setText(data_toshow[1+4*page_LR]);
                        label_data[6]->setText(data_toshow[2+4*page_LR]);
                        label_data[7]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==3){
                        label_data[8]->setText(data_toshow[0+4*page_LR]);
                        label_data[9]->setText(data_toshow[1+4*page_LR]);
                        label_data[10]->setText(data_toshow[2+4*page_LR]);
                        label_data[11]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==4){
                        label_data[12]->setText(data_toshow[0+4*page_LR]);
                        label_data[13]->setText(data_toshow[1+4*page_LR]);
                        label_data[14]->setText(data_toshow[2+4*page_LR]);
                        label_data[15]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==5){
                        label_data[16]->setText(data_toshow[0+4*page_LR]);
                        label_data[17]->setText(data_toshow[1+4*page_LR]);
                        label_data[18]->setText(data_toshow[2+4*page_LR]);
                        label_data[19]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==6){
                        label_data[20]->setText(data_toshow[0+4*page_LR]);
                        label_data[21]->setText(data_toshow[1+4*page_LR]);
                        label_data[22]->setText(data_toshow[2+4*page_LR]);
                        label_data[23]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    //若本页未展示全部数据,就等待用户按翻页键
                    if(flag==7)
                        break;
                }
        flag=1;
    });
    //右翻页
    connect(theBtn[3],&QPushButton::clicked,[=](){
        if(page_LR<TotalDataNum/4 -1) page_LR++;
        else return;
        //第一行名字更新
        label_name[0]->setText(data_name[0+4*page_LR]);
        label_name[1]->setText(data_name[1+4*page_LR]);
        label_name[2]->setText(data_name[2+4*page_LR]);
        label_name[3]->setText(data_name[3+4*page_LR]);
        //重新定位到本页开始位置再读
        QString s = count_pagenum.at(page_num-1);
        int lastpage_pos = file.pos() - s.toInt();
        file.seek(lastpage_pos);
        while(!file.atEnd())
                {
                    QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
                    qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
                    data_process(qstr);
                    /*
                     * 将一行数据进行处理，得到纯数据和名字
                     * */
                    if(flag==1){
                        label_data[0]->setText(data_toshow[0+4*page_LR]);
                        label_data[1]->setText(data_toshow[1+4*page_LR]);
                        label_data[2]->setText(data_toshow[2+4*page_LR]);
                        label_data[3]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==2){
                        label_data[4]->setText(data_toshow[0+4*page_LR]);
                        label_data[5]->setText(data_toshow[1+4*page_LR]);
                        label_data[6]->setText(data_toshow[2+4*page_LR]);
                        label_data[7]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==3){
                        label_data[8]->setText(data_toshow[0+4*page_LR]);
                        label_data[9]->setText(data_toshow[1+4*page_LR]);
                        label_data[10]->setText(data_toshow[2+4*page_LR]);
                        label_data[11]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==4){
                        label_data[12]->setText(data_toshow[0+4*page_LR]);
                        label_data[13]->setText(data_toshow[1+4*page_LR]);
                        label_data[14]->setText(data_toshow[2+4*page_LR]);
                        label_data[15]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==5){
                        label_data[16]->setText(data_toshow[0+4*page_LR]);
                        label_data[17]->setText(data_toshow[1+4*page_LR]);
                        label_data[18]->setText(data_toshow[2+4*page_LR]);
                        label_data[19]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    else if(flag==6){
                        label_data[20]->setText(data_toshow[0+4*page_LR]);
                        label_data[21]->setText(data_toshow[1+4*page_LR]);
                        label_data[22]->setText(data_toshow[2+4*page_LR]);
                        label_data[23]->setText(data_toshow[3+4*page_LR]);
                        flag++;
                    }
                    //若本页未展示全部数据,就等待用户按翻页键
                    if(flag==7)
                        break;
                }
        flag=1;
    });
    //返回按钮
    connect(theBtn[4],&QPushButton::clicked,[=](){
        file.close();
        this->parentWidget()->show();
        delete this;
    });
}
void showData::ui_Init()
{
    for(int i=0;i<24;i++)
    {
         label_data[i] = new QLabel(this);
         label_data[i]->setFixedSize(120,45);
         label_data[i]->setStyleSheet("QLabel{\
                                outline: 0px ;                            /* 去掉获取焦点时的虚线 */ \
                                background-color: rgb(0, 170, 255);	    /* 背景颜色 */\
                                border-radius: 6px;		                 /* 按钮边框的圆角设置 */\
                                border-style: outset;\
                                /* 按钮文本设置 */\
                                qproperty-alignment: 'AlignCenter| AlignCenter';			             /* 文本的位置 */\
                                font-size: 20px;\
                                color: #123567;			                 /* 文本颜色 */\
                                color:black;\
                                border-radius:4px;  border: 1px groove black; padding:1px 4px;\
                                border-style: outset;\
           }"
          );
}
for(int i=0;i<4;i++)
{
     label_name[i] = new QLabel(this);
     label_name[i]->setFixedSize(120,45);
     label_name[i]->setStyleSheet("QLabel{\
                            outline: 0px ;                            /* 去掉获取焦点时的虚线 */ \
                            border-radius: 6px;		                 /* 按钮边框的圆角设置 */\
                            border-style: outset;\
                            /* 按钮文本设置 */\
                            qproperty-alignment: 'AlignCenter| AlignCenter';			             /* 文本的位置 */\
                            font-size: 20px;\
                            color: #123567;			                 /* 文本颜色 */\
                            color:black;\
       }"
      );
}
    for(int i=0;i<3;i++)//创建主屏幕显示的按键
    {
         theLabel[i] = new QLabel(this);
    }
    theLabel[0]->setStyleSheet("QLabel{ image: url(:/pic/logo.png); background-color: rgb(20, 170, 225);}"    );
    theLabel[0]->setStyleSheet("QLabel{"
                          + the_StyleSheet[20]+ " font-size: 25px;"+ "background-color: rgb(20, 70, 255);	    /* 背景颜色 */"+  "}"    );
    theLabel[1]->setStyleSheet("QLabel{ image: url(:/pic/左.png); }"    );
    theLabel[2]->setStyleSheet("QLabel{ image: url(:/pic/右.png); }"    );

   theLabel[0]->setGeometry(0,0,640,60);//设定每隔放置一个按键
   theLabel[1]->setGeometry(0,0,300,60);//设定每隔放置一个按键
   theLabel[2]->setGeometry(340,0,300,60);//设定每隔放置一个按键
   theLabel[0]->setText("查看数据");



for(int i=0;i<5;i++)//创建主屏幕显示的按键
{
     theBtn[i] = new QPushButton(this);
//     theBtn[i]->hide();
}
btnlist_ui.append(theBtn[0]);
btnlist_ui.append(theBtn[1]);
btnlist_ui.append(theBtn[2]);
btnlist_ui.append(theBtn[3]);
btnlist_ui.append(theBtn[4]);
btnlist_ui.at(0)->setGeometry(100,360,0,0 );
btnlist_ui.at(1)->setGeometry(390,360,0,0 );
btnlist_ui.at(2)->setGeometry(100,360,0,0 );
btnlist_ui.at(3)->setGeometry(390,360,0,0 );
btnlist_ui.at(4)->setGeometry(490,360,0,0 );
btnlist_ui.at(0)->setText(tr("上"));
btnlist_ui.at(1)->setText(tr("下"));
btnlist_ui.at(2)->setText(tr("左"));
btnlist_ui.at(3)->setText(tr("右"));
btnlist_ui.at(4)->setText(tr("返回"));

QGridLayout *mainLayout = new QGridLayout();

for(int i=0;i<4;i++)
{
    mainLayout->addWidget(label_name[i],0, i);
    mainLayout->addWidget(label_data[i],1, i);
    mainLayout->addWidget(label_data[4+i], 2, i);
    mainLayout->addWidget(label_data[4*2+i], 3, i);
    mainLayout->addWidget(label_data[4*3+i], 4, i);
    mainLayout->addWidget(label_data[4*4+i], 5, i);
    mainLayout->addWidget(label_data[4*5+i], 6, i);
}

mainLayout->setContentsMargins(0,60,0,50);//(int left, int top, int right, int bottom)
mainLayout->setSizeConstraint(QLayout::SetMinimumSize);//布局显示效果
QWidget* widget = new QWidget(this);
widget->setGeometry(0,0,640,480);
widget->setLayout(mainLayout);

//事件过滤器
foreach (QPushButton *btn, btnlist_ui) {
    btn->installEventFilter(this);
}
}

void showData::Readdata(QString filepath)
{
    //实例QFile
    file.setFileName(filepath);
//    QFile filetemp("/File_reMake/Tempfile/tempfile.txt");
//    filetemp.remove();
//    file.copy("/File_reMake/Tempfile/tempfile.txt");
//    file.setFileName("/File_reMake/Tempfile/tempfile.txt");

    //第一行名字更新
    label_name[0]->setText(data_name[0]);
    label_name[1]->setText(data_name[1]);
    label_name[2]->setText(data_name[2]);
    label_name[3]->setText(data_name[3]);
    //存在打开
    file.open(QIODevice::ReadOnly);
    pos_lastpage_start = file.pos();  //第一页起始处
    while(!file.atEnd())
            {
                QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
                qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
                //读取一行数据中的有用数据
                 data_process(qstr);
                if(flag==1){
                   // label_data[0]->setText(qstr);
                    label_data[0]->setText(data_toshow[0]);
                    label_data[1]->setText(data_toshow[1]);
                    label_data[2]->setText(data_toshow[2]);
                    label_data[3]->setText(data_toshow[3]);
                    flag++;
                }
                else if(flag==2){
                    label_data[4]->setText(data_toshow[0]);
                    label_data[5]->setText(data_toshow[1]);
                    label_data[6]->setText(data_toshow[2]);
                    label_data[7]->setText(data_toshow[3]);
                    flag++;
                }
                else if(flag==3){
                    label_data[8]->setText(data_toshow[0]);
                    label_data[9]->setText(data_toshow[1]);
                    label_data[10]->setText(data_toshow[2]);
                    label_data[11]->setText(data_toshow[3]);
                    flag++;
                }
                else if(flag==4){
                    label_data[12]->setText(data_toshow[0]);
                    label_data[13]->setText(data_toshow[1]);
                    label_data[14]->setText(data_toshow[2]);
                    label_data[15]->setText(data_toshow[3]);
                    flag++;
                }
                else if(flag==5){
                    label_data[16]->setText(data_toshow[0+4*page_LR]);
                    label_data[17]->setText(data_toshow[1+4*page_LR]);
                    label_data[18]->setText(data_toshow[2+4*page_LR]);
                    label_data[19]->setText(data_toshow[3+4*page_LR]);
                    flag++;
                }
                else if(flag==6){
                    label_data[20]->setText(data_toshow[0+4*page_LR]);
                    label_data[21]->setText(data_toshow[1+4*page_LR]);
                    label_data[22]->setText(data_toshow[2+4*page_LR]);
                    label_data[23]->setText(data_toshow[3+4*page_LR]);
                    flag++;
                }
                //若本页未展示全部数据,就等待用户按翻页键
                if(flag==7)
                    break;
            }
    pos_start = file.pos();  //第二页起始处
    int count = pos_start - pos_lastpage_start;
    count_pagenum.append(QString("%1").arg(count));//记录第一页多少内容
    page_num=1;//这是第一页
    flag=1;
}


void showData::data_process(QString str)
{
    for(int i=0;i<TotalDataNum;i++)
    {
        Toshow= "";
        if(str.contains(data_name[i]))
        {
            int num1 = str.indexOf(data_name[i]);
            int num2 = num1 + data_name[i].length()+1;//真正数据的起始点
            for(int cnt = num2;cnt<str.length();cnt++)
            {
                if((str.at(cnt) >= '0' && str.at(cnt) <= '9') || str.at(cnt) == '.' || str.at(cnt) == '/'|| str.at(cnt) == ':'
                                               || str.at(cnt) == '-')
                {
                    Toshow.append(str.at(cnt));
                    if(cnt==str.length()-1) data_toshow[i] = Toshow;
                }
                else
                {
                    data_toshow[i] = Toshow;
                    break;
                }
            }
        }
        else
        {
            data_toshow[i]="-----";
        }
    }
}

bool showData::eventFilter(QObject *watched, QEvent *event)
{
    for(int i=0;i<btnlist_ui.length();i++)
        if(btnlist_ui.at(i) == watched)
        {
        if(event->type() == QEvent::KeyPress)
        {
           QKeyEvent *ev = (QKeyEvent *)event;
           QPushButton *button = (QPushButton *)watched;
           //button->setStyleSheet("QPushButton{font: /"Times New Roman/";font-size:25px;color:rgb(55,100,255);height:50px;border:4px solid rgb(155,200,33);border-radius:15px;selection-color:pink}");
           switch (ev->key())
           {
           case OK:
             {
//               if(button != theBtn[4])
//                     emit  button->clicked();
//               else
//               {
               QWidget *win = this;
               QWidget *win2 = win;
               win2 = win;
               win = win->parentWidget();
               win2->deleteLater();
               win2 = win;
               win = win->parentWidget();
               win2->deleteLater();
//               }
              break;
             }
           case UP://上
             {
              theBtn[0]->clicked();
//               if(watched == theBtn[2])
//                   ui->btn_last->setFocus();
//               else if(watched == theBtn[3])
//                   ui->btn_next->setFocus();
               break;
             }
           case DOWN://下
             {
               theBtn[1]->clicked();
               break;
             }
           case LEFT://左
             {
               theBtn[2]->clicked();
               break;
             }
           case RIGHT://右
             {
               theBtn[3]->clicked();
                break;
             }
           case BACK:
           {
               QWidget *win = this;
               QWidget *win2 = win;
               win2 = win;
               win = win->parentWidget();
               win2->deleteLater();
               win2 = win;
               win = win->parentWidget();
               win2->deleteLater();
               break;
           }
           case INIT: //打开初始化界面
           {
               init_Show *init = new init_Show(this);
               init->show();
               this->hide();
               break;
           }

            default:
               break;
           }
           //button->setStyleSheet("QPushButton{color:black}");
        }
        else if (event->type()==QEvent::FocusIn)     //然后再判断控件的具体事件 (这里指获得焦点事件)
                  {
                      QPushButton *focus_button = (QPushButton *)watched;
                      focus_button->setStyleSheet("QPushButton{background-color:white;\
                                                                      color:black;\
                                                                      border-radius:4px;  border: 1px groove gray; padding:1px 4px;\
                                                                      border-style: outset;}"
                                                 );
                  }
        else if (event->type()==QEvent::FocusOut)    // 这里指 控件的失去焦点事件
                 {
                    QPushButton *focus_button = (QPushButton *)watched;
                    focus_button->setStyleSheet("QPushButton{color:black;\
                                                border-radius:4px;  border: 1px groove gray; padding:1px 4px;\
                                                border-style: outset;}");
                 }
    }
return 0;
}


//void showData::keyPressEvent(QKeyEvent *event)
//{

//    if(event->type() == QEvent::KeyPress)
//    {
//       QKeyEvent *ev = (QKeyEvent *)event;
//       switch (ev->key())
//       {
//       case UP://上
//         {
////           isDragging = true;//记录鼠标按下标志位
////           timer2->start();
//           key_up();
//           break;
//         }
//       case DOWN  :
//       {
////           isDragging = true;//记录鼠标按下标志位
////               timer->start();
//           key_down();
//           break;
//       }
//       case LEFT:
//         {
////           isDragging = true;//记录鼠标按下标志位
////           timer2->start();
//           key_left();
//           break;
//         }
//       case RIGHT  ://上
//       {
////           isDragging = true;//记录鼠标按下标志位
////               timer->start();
//           key_right();

//           break;
//       }
//       case OK  ://上
//       {
//           this->parentWidget()->show();
//           this->close();
//           break;
//       }
//       default:
//           break;
//       }
//    }

//}

//void showData::key_up()
//{
//    qDebug()<<1;
//    if(page_num < 2)
//    {
//        qDebug()<<1.5;
//        return;
//    }
//    qDebug()<<2;

//    //重新定位读写位置
//    QString s = count_pagenum.at(page_num-1);
//    QString s2 = count_pagenum.at(page_num-2);
//    int lastpage_pos = file.pos() - s.toInt() - s2.toInt();
//    qDebug()<<3;

//    file.seek(lastpage_pos);
//    while(!file.atEnd())
//            {
//                QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
//                qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
//                data_process(qstr);
//                /*
//                 * 将一行数据进行处理，得到纯数据和名字
//                 * */
//                qDebug()<<4;

//                if(flag==1){
//                    label_data[0]->setText(data_toshow[0+4*page_LR]);
//                    label_data[1]->setText(data_toshow[1+4*page_LR]);
//                    label_data[2]->setText(data_toshow[2+4*page_LR]);
//                    label_data[3]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                    qDebug()<<5;
//                }
//                else if(flag==2){
//                    label_data[4]->setText(data_toshow[0+4*page_LR]);
//                    label_data[5]->setText(data_toshow[1+4*page_LR]);
//                    label_data[6]->setText(data_toshow[2+4*page_LR]);
//                    label_data[7]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                    qDebug()<<6;
//                }
//                else if(flag==3){
//                    label_data[8]->setText(data_toshow[0+4*page_LR]);
//                    label_data[9]->setText(data_toshow[1+4*page_LR]);
//                    label_data[10]->setText(data_toshow[2+4*page_LR]);
//                    label_data[11]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                    qDebug()<<7;
//                }
//                else if(flag==4){
//                    label_data[12]->setText(data_toshow[0+4*page_LR]);
//                    label_data[13]->setText(data_toshow[1+4*page_LR]);
//                    label_data[14]->setText(data_toshow[2+4*page_LR]);
//                    label_data[15]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                    qDebug()<<8;
//                }
//                //若本页未展示全部数据,就等待用户按翻页键
//                if(flag==5)
//                {
//                    qDebug()<<9;

//                }
//                qDebug()<<10;

//    }
//       flag=1;
//       page_num--;//页数减一
//       qDebug()<<11;
//       count_pagenum.removeLast();
//       qDebug()<<12;

//}

//void showData::key_down()
//{
//    qDebug()<<111;

//    if(file.atEnd())
//        return;
//    qDebug()<<112;
//    pos_lastpage_start =file.pos();
//    while(!file.atEnd())
//            {
//                QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
//                qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
//                data_process(qstr);
//                if(flag==1){
//                    //第一行显示，但还要注意是左右的第几页  第一页page_LR=0,......
//                    label_data[0]->setText(data_toshow[0+4*page_LR]);
//                    label_data[1]->setText(data_toshow[1+4*page_LR]);
//                    label_data[2]->setText(data_toshow[2+4*page_LR]);
//                    label_data[3]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==2){
//                    label_data[4]->setText(data_toshow[0+4*page_LR]);
//                    label_data[5]->setText(data_toshow[1+4*page_LR]);
//                    label_data[6]->setText(data_toshow[2+4*page_LR]);
//                    label_data[7]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==3){
//                    label_data[8]->setText(data_toshow[0+4*page_LR]);
//                    label_data[9]->setText(data_toshow[1+4*page_LR]);
//                    label_data[10]->setText(data_toshow[2+4*page_LR]);
//                    label_data[11]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==4){
//                    label_data[12]->setText(data_toshow[0+4*page_LR]);
//                    label_data[13]->setText(data_toshow[1+4*page_LR]);
//                    label_data[14]->setText(data_toshow[2+4*page_LR]);
//                    label_data[15]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                //若本页未展示全部数据,就等待用户按翻页键
//                if(flag==5)
//                    break;
//            }
//    if(flag<5) //本页未用完,剩下的就要变为空
//    {
//        switch (flag) {
//        case 2: //只用了一行
//        {
//            label_data[4]->setText("");
//            label_data[5]->setText("");
//            label_data[6]->setText("");
//            label_data[7]->setText("");
//            label_data[8]->setText("");
//            label_data[9]->setText("");
//            label_data[10]->setText("");
//            label_data[11]->setText("");
//            label_data[12]->setText("");
//            label_data[13]->setText("");
//            label_data[14]->setText("");
//            label_data[15]->setText("");
//            break;
//        }
//        case 3://只用了两行
//        {
//            label_data[8]->setText("");
//            label_data[9]->setText("");
//            label_data[10]->setText("");
//            label_data[11]->setText("");
//            label_data[12]->setText("");
//            label_data[13]->setText("");
//            label_data[14]->setText("");
//            label_data[15]->setText("");
//            break;
//        }
//        case 4://只用了三行
//        {
//            label_data[12]->setText("");
//            label_data[13]->setText("");
//            label_data[14]->setText("");
//            label_data[15]->setText("");
//            break;
//        }
//        default:
//            break;
//        }
//    }
//    pos_start = file.pos();
//    int count = pos_start - pos_lastpage_start;
//    count_pagenum.append(QString("%1").arg(count));//记录本页多少内容
//    page_num++;
//    flag=1;

//}

//void showData::key_left()
//{
//    if(page_LR>0) page_LR--;
//    else return;
//    //第一行名字更新
////    label_name[0]->setText(data_name[0+4*page_LR]);
////    label_name[1]->setText(data_name[1+4*page_LR]);
////    label_name[2]->setText(data_name[2+4*page_LR]);
////    label_name[3]->setText(data_name[3+4*page_LR]);

//    //四行数据更新
//    //重新定位到本页开始位置再读
//    QString s = count_pagenum.at(page_num-1);
//    int lastpage_pos = file.pos() - s.toInt();
//    file.seek(lastpage_pos);
//    while(!file.atEnd())
//            {
//                QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
//                qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
//                data_process(qstr);
//                /*
//                 * 将一行数据进行处理，得到纯数据和名字
//                 * */
//                if(flag==1){
//                    label_data[0]->setText(data_toshow[0+4*page_LR]);
//                    label_data[1]->setText(data_toshow[1+4*page_LR]);
//                    label_data[2]->setText(data_toshow[2+4*page_LR]);
//                    label_data[3]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==2){
//                    label_data[4]->setText(data_toshow[0+4*page_LR]);
//                    label_data[5]->setText(data_toshow[1+4*page_LR]);
//                    label_data[6]->setText(data_toshow[2+4*page_LR]);
//                    label_data[7]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==3){
//                    label_data[8]->setText(data_toshow[0+4*page_LR]);
//                    label_data[9]->setText(data_toshow[1+4*page_LR]);
//                    label_data[10]->setText(data_toshow[2+4*page_LR]);
//                    label_data[11]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==4){
//                    label_data[12]->setText(data_toshow[0+4*page_LR]);
//                    label_data[13]->setText(data_toshow[1+4*page_LR]);
//                    label_data[14]->setText(data_toshow[2+4*page_LR]);
//                    label_data[15]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                //若本页未展示全部数据,就等待用户按翻页键
//                if(flag==5)
//                    break;
//            }
//    flag=1;
//}

//void showData::key_right()
//{
//    if(page_LR<TotalDataNum/4 -1) page_LR++;
//    else return;
//    //第一行名字更新
////    label_name[0]->setText(data_name[0+4*page_LR]);
////    label_name[1]->setText(data_name[1+4*page_LR]);
////    label_name[2]->setText(data_name[2+4*page_LR]);
////    label_name[3]->setText(data_name[3+4*page_LR]);
//    //重新定位到本页开始位置再读
//    QString s = count_pagenum.at(page_num-1);
//    int lastpage_pos = file.pos() - s.toInt();
//    file.seek(lastpage_pos);
//    while(!file.atEnd())
//            {
//                QString qstr = file.readLine();		// 此时读入的一行内容是包括换行符的
//                qstr =qstr.trimmed();		// 使用函数trimmed()可以去掉换行符
//                data_process(qstr);
//                /*
//                 * 将一行数据进行处理，得到纯数据和名字
//                 * */
//                if(flag==1){
//                    label_data[0]->setText(data_toshow[0+4*page_LR]);
//                    label_data[1]->setText(data_toshow[1+4*page_LR]);
//                    label_data[2]->setText(data_toshow[2+4*page_LR]);
//                    label_data[3]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==2){
//                    label_data[4]->setText(data_toshow[0+4*page_LR]);
//                    label_data[5]->setText(data_toshow[1+4*page_LR]);
//                    label_data[6]->setText(data_toshow[2+4*page_LR]);
//                    label_data[7]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==3){
//                    label_data[8]->setText(data_toshow[0+4*page_LR]);
//                    label_data[9]->setText(data_toshow[1+4*page_LR]);
//                    label_data[10]->setText(data_toshow[2+4*page_LR]);
//                    label_data[11]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                else if(flag==4){
//                    label_data[12]->setText(data_toshow[0+4*page_LR]);
//                    label_data[13]->setText(data_toshow[1+4*page_LR]);
//                    label_data[14]->setText(data_toshow[2+4*page_LR]);
//                    label_data[15]->setText(data_toshow[3+4*page_LR]);
//                    flag++;
//                }
//                //若本页未展示全部数据,就等待用户按翻页键
//                if(flag==5)
//                    break;
//            }
//    flag=1;
//}
